/*
 * Fichier.java
 *
 * Created on 27 novembre 2007, 19:09
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package pika;

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.util.StringTokenizer;
import javax.swing.ImageIcon;


public class Fichier {
    private String adresse;
    private String nom;
    private ImageIcon image;
    private ImageIcon vignette;
    private ImageIcon resizedImage;
    private ImageIcon mini;
    
    
    
    
    
    /** Creates a new instance of Fichier */
    public Fichier(String adresse) {
        this.adresse = adresse;
        nom = new String();
        StringTokenizer st = new StringTokenizer(adresse,"\\");
        while (st.hasMoreTokens()) {
            nom = st.nextToken();
        }
        
        vignette =  new ImageIcon(getScaledImage(null, 100, 100));
    }
    
    
    public void creerVignette(int xApercu,int yApercu) {
        ImageIcon image = new ImageIcon(adresse, adresse);
        System.out.println("creation vignette : "+ adresse);
        // resize qui garde les proportions
        int longueurImage = image.getIconWidth();
        int largeurImage = image.getIconHeight();
        if (longueurImage >= largeurImage) {
            vignette =  new ImageIcon(getScaledImage(image.getImage(), xApercu, largeurImage*xApercu/longueurImage));
        } else{
            vignette =  new ImageIcon(getScaledImage(image.getImage(), longueurImage*yApercu/largeurImage, yApercu));
        }
        
        
    }
    
    
    
    public void creerResizedImage(int xApercu,int yApercu) {
        
        ImageIcon image = new ImageIcon(adresse, adresse);
        
        // resize qui garde les proportions
        int longueurImage = image.getIconWidth();
        int largeurImage = image.getIconHeight();
        if (longueurImage >= largeurImage) {
            resizedImage =  new ImageIcon(getScaledImage(image.getImage(), xApercu, largeurImage*xApercu/longueurImage));
        } else{
            resizedImage =  new ImageIcon(getScaledImage(image.getImage(), longueurImage*yApercu/largeurImage, yApercu));
        }
        
        //  image =null;
        
    }
    

    
    
    private Image getScaledImage(Image srcImg, int w, int h){
        BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
        
        Graphics2D g2 = resizedImg.createGraphics();
        //  g2.setColor(Color.red);
        g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        
        g2.drawImage(srcImg, 0, 0, w, h, null);
        //hack pour centrer l'image inutil depuis ...
        /*
        if(w>h){
        g2.drawImage(srcImg, 0, 50-h/2, w, h, null);
        }
        else{
          g2.drawImage(srcImg, 50-w/2, 0, w, h, null);
        }
         */
        g2.dispose();
        return resizedImg;
    }
    
    
    
    public String getNom() {

    
    return nom;
}

public String toString() {
    return adresse;
    
}

public ImageIcon getVignette() {
    return vignette;
}


public ImageIcon getResizedImage() {
    return resizedImage;
}

public String getAdresse() {
    return adresse;
}

}
